<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
	xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
	xmlns:bps="http://bps.egov.ws.adaptative.esb.uy.edu.fing.org/">

	<xsl:strip-space elements="*" />
		
	<xsl:output method="xml" media-type="application/xhtml+xml" omit-xml-declaration="yes" encoding="utf-8" indent="yes" />
	
	<xsl:template match="/">				
		<xsl:apply-templates select="soapenv:Envelope" />
	</xsl:template>

	<!-- Process Envelope Object -->
	<xsl:template match="soapenv:Envelope">	
		<xsl:copy>
			<xsl:apply-templates select="soapenv:Header" />		
			<xsl:apply-templates select="soapenv:Body" />	
		</xsl:copy>
	</xsl:template>
	
	<!-- Process Header Object -->
	<xsl:template match="soapenv:Header">
	 	<xsl:copy> 
	 		 <xsl:apply-templates select="@*|node()"/>
	 	</xsl:copy>
	</xsl:template>
	
	<!-- Process Body Object -->
	<xsl:template match="soapenv:Body">
		<xsl:copy>
			<xsl:call-template name="funtionName" />
	 	</xsl:copy>
	</xsl:template>
	
	<!-- Process Function Object -->
	<xsl:template name="funtionName">
		<xsl:apply-templates select="@*|node()"/>
	</xsl:template>
	
	<!-- ###################################### AUXILIARY FUNCTIONS ###################################### -->
	
	<!-- Copy Object Recursive -->
	<xsl:template match="@*|node()">
		<xsl:copy>
			<xsl:apply-templates select="@*|node()"/>
		</xsl:copy>
	</xsl:template>
	
	<!-- ###################################### PROCESS CHANGE IN WSDL ###################################### -->
	
	<!-- registroEmpresa y registroEmpresaResponse String registrarNuevaEmpresa(EmpresaCanonico emp) -->
	
	<xsl:template match="bps:registroEmpresa">
		<xsl:element name="registrarNuevaEmpresa">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:registroEmpresa/arg0/empleadosCant">
		<xsl:element name="empleados">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:registroEmpresa/arg0/nroBPS"/>
	
	<xsl:template match="bps:registroEmpresaResponse">
		<xsl:element name="registrarNuevaEmpresaResponse">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:registroEmpresaResponse/return">
		<xsl:element name="return">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	
	<!-- obtenerInfoEmpresa y obtenerInfoEmpresaResponse EmpresaCanonico obtenerInfoEmpresa(String RUT) -->
	
	<xsl:template match="bps:obtenerInfoEmpresa">
		<xsl:element name="obtenerInfoEmpresa">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	
	<xsl:template match="bps:obtenerInfoEmpresaResponse">
		<xsl:element name="obtenerInfoEmpresaResponse">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:obtenerInfoEmpresaResponse/return">
		<xsl:element name="return">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	
	<xsl:template match="bps:obtenerInfoEmpresaResponse/return/alDiaBPS">
		<xsl:element name="alDiaBPS">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:obtenerInfoEmpresaResponse/return/alDiaDGI">
		<xsl:element name="alDiaDGI">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:obtenerInfoEmpresaResponse/return/ciudad">
		<xsl:element name="ciudad">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:obtenerInfoEmpresaResponse/return/departamento">
		<xsl:element name="departamento">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:obtenerInfoEmpresaResponse/return/direccion">
		<xsl:element name="direccion">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:obtenerInfoEmpresaResponse/return/empleadosCant">
		<xsl:element name="empleados">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:obtenerInfoEmpresaResponse/return/nroBPS"/>
	<xsl:template match="bps:obtenerInfoEmpresaResponse/return/RUT">
		<xsl:element name="RUT">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
		
	<!-- obtenerPersona y obtenerPersonaResponse PersonaCanonico obtenerPersona(String CI) -->
	
	<xsl:template match="bps:obtenerPersona">
		<xsl:element name="obtenerPersona">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>	
	<xsl:template match="bps:obtenerPersona/arg0">
		<xsl:element name="arg0">
			<xsl:value-of select="../arg0"/>
			<xsl:text>.</xsl:text>
			<xsl:value-of select="../arg1"/>
			<xsl:text>.</xsl:text>
			<xsl:value-of select="../arg2"/>
			<xsl:text>-</xsl:text>
			<xsl:value-of select="../arg3"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="arg1"/>
	<xsl:template match="arg2"/>
	<xsl:template match="arg3"/>

	
	<xsl:template match="bps:obtenerPersonaResponse">
		<xsl:element name="obtenerPersonaResponse">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="bps:obtenerPersonaResponse/return">
		<xsl:element name="return">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>	
	<xsl:template match="bps:obtenerPersonaResponse/return/nombre1">
		<xsl:element name="primerNombre">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>	
	<xsl:template match="bps:obtenerPersonaResponse/return/nombre2">
		<xsl:element name="segundoNombre">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>	
	<xsl:template match="bps:obtenerPersonaResponse/return/apellido1">
		<xsl:element name="apellidoPaterno">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>	
	<xsl:template match="bps:obtenerPersonaResponse/return/apellido2">
		<xsl:element name="apellidoMaterno">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>	
	<xsl:template match="bps:obtenerPersonaResponse/return/CI">
		<xsl:element name="CI">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>	
	<xsl:template match="bps:obtenerPersonaResponse/return/firmaCedula">
		<xsl:element name="firmaCedula">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>	
	<xsl:template match="bps:obtenerPersonaResponse/return/sexo">
		<xsl:element name="sexo">
			<xsl:apply-templates select="@*|node()"/>
		</xsl:element>
	</xsl:template>	
	
</xsl:stylesheet>